草庐IT

Java Xpath 表达式

全部标签

php - 使用正则表达式验证 CSV 中的项目

我有一个CSV字符串,我试图通过正则表达式验证它以确保它只有N个项目。我尝试了以下模式(查找2个项目):/([^,]+){2}/但它似乎不起作用,我猜是因为内部模式不够贪婪。有什么想法吗?理想情况下,它应该适用于PHP和Javscript正则表达式引擎。更新:出于技术原因,我真的想通过正则表达式而不是其他解决方案来做到这一点。CSV未被引号括起来,值也不包含逗号,所以这不是问题。/([^,]*[,]{1}[^,]*){1}/这是我现在的位置,哪种工作但仍然有点难看,并且与一个项目匹配有问题。CSV看起来像:apples,bananas,pears,oranges,grapefruit

php - 使用正则表达式选择一个 YAML block

我有一个很大的YAML文件,我想使用正则表达式选择整个节点。例如:Node1:Child:GrandChild:fooNode2:AnotherChild:AnotherGrandChild:barNode3:LastChild:LastGrandChild:foo如何使用正则表达式选择上面例子中的所有Node2,并返回:Node2:AnotherChild:AnotherGrandChild:bar 最佳答案 因为该节点中的所有其他内容都是缩进的(如果我理解YAML正确的话),这至少在您的示例字符串中有效:$mask='~(^%s

php - 负面回顾正则表达式捕获的问题

我尝试匹配电子邮件地址,但前提是它们前面没有“mailto:”。我试试这个正则表达式:"/(?针对这个字符串:'EMAIL...otheremail@domain.com'我希望只捕获'otheremail@domain.com',但我也收到'omeemail@domain.com'-查看缺失's'.我想知道这里出了什么问题。在回顾断言之后我不能有一个正常的正则表达式吗?我在PHP中的整个示例如下所示:$testString='EMAIL...otheremail@domain.com';$pattern="/(?');print_r($matches);echo('');谢谢!

php - 获取正则表达式组中匹配字符的数量

我可能正在突破正则表达式的界限,但谁知道呢......我在php工作。比如:preg_replace('/(?:\n|^)(={3,6})([^=]+)(\1)/','$2',$input);有没有办法计算出匹配了多少个“=”(={3,6}),这样我就可以在“#”所在的位置反向引用它?有效转向:===Heading3===intoHeading3====Heading4====intoHeading4... 最佳答案 您可以使用:preg_replace('/(?:\n|^)(={3,6})([^=]+)(\1)/e',"''.'$

php - 我如何在 PHP 中使用 "merge"这两个正则表达式?

我正在学习正则表达式,所以请放轻松!当不以_(下划线)开头并且包含仅单词字符(字母、数字和下划线本身)时,用户名被视为有效):namespaceGremo\ExtraValidationBundle\Validator\Constraints;useSymfony\Component\Validator\Constraint;useSymfony\Component\Validator\ConstraintValidator;classUsernameValidatorextendsConstraintValidator{publicfunctionvalidate($value,Co

php - 从字符串中查找价格的正则表达式

我正在尝试从字符串中提取价格:例子:$money='Rs.109.10';$price=preg_replace('/[^0-9.]/u','',$money);echo$price;这个例子的输出.109.10我期待以下输出:109.10帮我找到正确的正则表达式。 最佳答案 preg_match('/(\d[\d.]*)/',$money,$matches);$price=$matches[1];或者,更好的是,正如@Smamatti的回答所暗示的那样:preg_match('/\d+\.?\d*/',$money,$matche

php - 正则表达式获取前后N个词

我想获取给定搜索字符串的“上下文”。例如,对于以下行中的搜索字符串myselfMe,mydogandmyselfaregoingonavacation.我想得到dogandmyselfaregoingN=2。所以匹配前2个词和匹配后2个词。目前我像这样匹配整行:$lines=file($file->getFilename());$lines=preg_grep('/'.$_POST['query'].'/',$lines); 最佳答案 preg_grep()应该那样做,但听起来你需要preg_match()如果您可以在文本中有多个搜

php - 将多个匹配的正则表达式合并为一个并得到匹配的

我有一个正则表达式列表:suresnes|suresne|surenes|surenepommier|pommiers^musique$^(faq|aide)$^(file)?loss()?less$parisfaq我的用例是每个匹配的模式都会显示一个指向我的用户的链接,所以我可以有多个模式匹配。我针对一个简单的文本字符串“liveinparis”/“faq”/“pom”来测试这些模式...最简单的方法是用preg_match遍历所有模式,但我会在性能关键页面上经常这样做,所以这对我来说很糟糕。这是我尝试过的:将所有这些表达式与组名组合成一个:preg_match("@(?P^(faq

关于时间戳的 PHP 正则表达式问题 preg_match()

正则表达式问题2013-05-2915:15:12string我正在匹配/^(\d{4})-(\d{2})-(\d{2})({\s}+(\d{2}):(\d{2}):(\d{2}))?$/与preg_match但不验证...它给出false。匹配2013-05-2915:15:12或2013-05-29模式的正则表达式应该是什么。 最佳答案 让我们先看看您的正则表达式。在您匹配{\s}+的日期和时间之间。这意味着“字符{,后跟一个空格/制表符,再后跟一个或多个}”。将{\s}替换为?:\s+(匹配一个或多个空格/制表符的非捕获组),

php - 密码验证php正则表达式

我是正则表达式的新手。我需要使用php验证密码,并使用正则表达式执行以下密码策略:密码:必须至少有8个字符必须有2个数字允许的符号是:!@#$%*我尝试了以下方法:/^(?=.*\d)(?=.*[A-Za-z])[0-9A-Za-z!@#$%]$/ 最佳答案 以下内容完全符合您的要求:^(?=.*\d.*\d)[0-9A-Za-z!@#$%*]{8,}$Onlinedemo解释^:匹配字符串的开头(?=.*\d.*\d):正向前瞻,检查是否有2位数字[0-9A-Za-z!@#$%*]{8,}:匹配数字、字母和!@#$%*8次或更多次